/**
 * 
 */
package optimization.naturalOptimization.terminationCriterion;

import optimization.IdentificationI;
import optimization.naturalOptimization.NaturalOptimization;

/**
 * @author Kevin Wagner
 * @version 1.0
 */
public abstract class TerminationCriterion implements IdentificationI {
	
	private NaturalOptimization parentOpt;
	
	
	/**
	 * Creates a new 
	 * @param opt parent {@link NaturalOptimization}
	 */
	public TerminationCriterion(NaturalOptimization opt){
		parentOpt=opt;
	}
	
	/**
	 * Returns the parent optimization to check termination criterion.
	 * @return parent optimization
	 */
	public NaturalOptimization getParentOptimization(){
		return parentOpt;
	}
	
	/**
	 * Returns the status of termination of the optimization.
	 * @return {@code TRUE}, if termination criterion is achieved.
	 */
	public abstract boolean isFinished();

}
